Case data visualization application

ABSTRACT

A case data visualization application is provided that, when executed on a device, allows a user to visualize a chronology of events associated with a case, view a summary of one or more supporting details of an event, and drill-down to view specific case data of each supporting detail of an event. Thus, the case data visualization application provides a way of collecting, organizing, visualizing, and sharing data associated with a case. Furthermore, the case data visualization application allow a plurality of users to collaborate on the case, and synchronizes a plurality of supporting details created by a plurality of users that are associated with an event.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation-in-part application of application Ser. No. 13/517,814, filed on Jun. 14, 2012, and which is herein incorporated by reference.

BACKGROUND

1. Field

Certain embodiments of the invention relate generally to computer systems. More specifically, certain embodiments of the present invention relate to computer systems that provide one or more software applications utilized in collecting, organization, visualizing, and sharing of data.

2. Description of the Related Art

Individuals across a range of fields, such as law enforcement, scientific research, historical research, litigation and insurance, are required to collect and organize a significant amount of data as part of their day-to-day workloads. Such individuals are generally required to organize and present this collected data (such as presenting a case against a defendant or presenting results of experiments to colleagues). However, it is generally difficult to build a logical, time-oriented narrative based on the collected data, as the collected data is generally from numerous different sources, and generally in numerous different formats. Furthermore, conventional tools are generally not set up to facilitate creating such a narrative. For example, enterprise resource planning (ERP) case management software is generally too unwieldy to facilitate a logical, time-oriented narrative. Furthermore, the use of ERP case management software can raise issues as to the portability of sensitive data, or the portability of data that is tied to the ERP case management software, and not easily transferred into another format.

SUMMARY

According to an embodiment of the invention, a method includes displaying a timeline that includes one or more events associated with a case, where the one or more events are displayed within the timeline in a chronological order, and where at least one event includes case data. The method further includes creating a new event that is associated with the case. The method further includes receiving one or more files, where at least one file includes new case data. The method further includes encapsulating the one or more files within a case file. The method further includes displaying the new event within the timeline, where the displayed new event includes a link to the case file, and where the link to the case file causes the new case data to be displayed within the timeline.

According to another embodiment, an apparatus includes a memory configured to store a case data visualization module. The apparatus further includes a processor configured to execute the case data visualization module stored on the memory. The processor is further configured, when executing the case data visualization module stored on the memory, to, display a timeline that includes one or more events associated with a case, where the one or more events are displayed within the timeline in a chronological order, and where at least one event includes case data. The processor is further configured, when executing the case data visualization module stored on the memory, to, create a new event that is associated with the case. The processor is further configured, when executing the case data visualization module stored on the memory, to, receive one or more files, where at least one file includes new case data. The processor is further configured, when executing the case data visualization module stored on the memory, to, encapsulate the one or more files within a case file. The processor is further configured, when executing the case data visualization module stored on the memory, to, display the new event within the timeline, where the displayed new event includes a link to the case file, and wherein the link to the case file causes the new case data to be displayed within the timeline.

According to another embodiment, a non-transitory computer-readable medium includes a computer program stored thereon that, when executed by a processor, causes the processor to implement a method. The method includes displaying a timeline that includes one or more events associated with a case, where the one or more events are displayed within the timeline in a chronological order, and where at least one event includes case data. The method further includes creating a new event that is associated with the case. The method further includes receiving one or more files, where at least one file includes new case data. The method further includes encapsulating the one or more files within a case file. The method further includes displaying the new event within the timeline, where the displayed new event includes a link to the case file, and where the link to the case file causes the new case data to be displayed within the timeline.

According to another embodiment of the invention, a method includes receiving a first set of case data associated with a case, where the first set of case data includes a first set of events associated with the case. The method further includes comparing the first set of case data with a second set of case data associated with the case, where the second set of case data includes a second set of events associated with the case. The method further includes reconciling one or more differences between the first set of case data with the second set of case data.

According to another embodiment, an apparatus includes a memory configured to store a case data visualization module. The apparatus further includes a processor configured to execute the case data visualization module stored on the memory. The processor is further configured, when executing the case data visualization module stored on the memory, to, receive a first set of case data associated with a case, where the first set of case data includes a first set of events associated with the case. The processor is further configured, when executing the case data visualization module stored on the memory, to, compare the first set of case data with a second set of case data associated with the case, where the second set of case data includes a second set of events associated with the case. The processor is further configured, when executing the case data visualization module stored on the memory, to reconcile one or more differences between the first set of case data with the second set of case data.

According to another embodiment, a non-transitory computer-readable medium includes a computer program stored thereon that, when executed by a processor, causes the processor to implement a method. The method includes receiving a first set of case data associated with a case, where the first set of case data includes a first set of events associated with the case. The method further includes comparing the first set of case data with a second set of case data associated with the case, where the second set of case data includes a second set of events associated with the case. The method further includes reconciling one or more differences between the first set of case data with the second set of case data.

According to another embodiment of the invention, a method includes displaying a timeline. The method further includes determining that a plurality of events to be displayed within the timeline will not fit within the timeline. The method further includes grouping the plurality of events into a first group of events and a second group of events. The method further includes displaying the first group of events within the timeline. The method further includes displaying an icon within the timeline, where the icon represents one or more events of the second group of events. A first visual characteristic of the icon represents a temporal position of the one or more events. A second visual characteristic of the icon represents an amount of the one or more events.

According to another embodiment, an apparatus includes a memory configured to store a case data visualization module. The apparatus further includes a processor configured to execute the case data visualization module stored on the memory. The processor is further configured, when executing the case data visualization module stored on the memory, to, display a timeline. The processor is further configured, when executing the case data visualization module stored on the memory, to, determine that a plurality of events to be displayed within the timeline will not fit within the timeline. The processor is further configured, when executing the case data visualization module stored on the memory, to, group the plurality of events into a first group of events and a second group of events. The processor is further configured, when executing the case data visualization module stored on the memory, to, display the first group of events within the timeline. The processor is further configured, when executing the case data visualization module stored on the memory, to, display an icon within the timeline, where the icon represents one or more events of the second group of events. A first visual characteristic of the icon represents a temporal position of the one or more events. A second visual characteristic of the icon represents an amount of the one or more events.

According to another embodiment, a non-transitory computer-readable medium includes a computer program stored thereon that, when executed by a processor, causes the processor to implement a method. The method includes displaying a timeline. The method further includes determining that a plurality of events to be displayed within the timeline will not fit within the timeline. The method further includes grouping the plurality of events into a first group of events and a second group of events. The method further includes displaying the first group of events within the timeline. The method further includes displaying an icon within the timeline, where the icon represents one or more events of the second group of events. A first visual characteristic of the icon represents a temporal position of the one or more events. A second visual characteristic of the icon represents an amount of the one or more events.

BRIEF DESCRIPTION OF THE DRAWINGS

Further embodiments, details, advantages, and modifications of the present invention will become apparent from the following detailed description of the preferred embodiments, which is to be taken in conjunction with the accompanying drawings, wherein:

FIG. 1 illustrates a block diagram of an apparatus in accordance with an embodiment of the invention.

FIG. 2 illustrates a block diagram of a system in accordance with an embodiment of the invention.

FIG. 3 illustrates a block diagram of a case data visualization application in a client format in accordance with an embodiment of the invention.

FIG. 4 illustrates a block diagram of a case data visualization application in a reader format in accordance with an embodiment of the invention.

FIG. 5 illustrates an example user interface of a case data visualization module, according to an embodiment of the invention.

FIG. 6 illustrates an example file library user interface of a case data visualization module, according to an embodiment of the invention.

FIG. 7 illustrates a block diagram of a case data visualization application in a mobile format in accordance with an embodiment of the invention.

FIG. 8 illustrates a block diagram of a case data visualization application in a server format in accordance with an embodiment of the invention.

FIG. 9 illustrates a method according to an embodiment of the invention.

FIG. 10 illustrates another method, according to an embodiment of the invention

FIG. 11 illustrates another example user interface of a case data visualization module, according to an embodiment of the invention.

FIG. 12 illustrates another example user interface of a case data visualization module, according to an embodiment of the invention.

FIG. 13 illustrates another method, according to an embodiment of the invention.

DETAILED DESCRIPTION

It will be readily understood that the components of the present invention, as generally described and illustrated in the figures herein, may be arranged and designed in a wide variety of different configurations. Thus, the following detailed description of the embodiments of a method, apparatus, system, and computer-readable medium, as represented in the attached figures, is not intended to limit the scope of the invention as claimed, but is merely representative of selected embodiments of the invention.

The features, structures, or characteristics of the invention described throughout this specification may be combined in any suitable manner in one or more embodiments. For example, the usage of the phrases “certain embodiments,” “some embodiments,” or other similar language, throughout this specification refers to the fact that a particular feature, structure, or characteristic described in connection with the embodiment may be included in at least one embodiment of the present invention. Thus, appearances of the phrases “in certain embodiments,” “in some embodiments,” “in other embodiments,” or other similar language, throughout this specification do not necessarily all refer to the same group of embodiments, and the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.

DEFINITIONS

A “computer,” as understood by one of ordinary skill in the art, is any programmable machine that receives input, automatically stores and manipulates data, and provides output. A “physical machine” or “physical computer” is a hardware implementation of a machine or computer, where the machine or computer includes a hardware component. A “virtual machine” or “virtual computer” is a software implementation of a machine or computer that executes programs like a physical machine or computer, but where the software implementation does not include a hardware component outside of the physical machine or computer that the virtual machine or computer executes upon.

A “computer program” is any sequence of instructions written to perform a specific task on a computer, and has an executable form that a computer (typically through the use of a processor) can use to execute the instructions. A “computer module,” “software module,” or “module” is any computer program, or a portion thereof, that encapsulates related functions. A “computer application,” “software application,” or “application” is any collection of computer programs and/or modules. A “computer network” or “network” is any collection of computers interconnected by communication channels that facilitate communication among the computers. A “file” is a resource that stores data that can be accessed by a computer program that is executed within the computer. A “case” is an actual event, situation, or fact, such as a legal proceeding (such as a prosecution of a criminal defendant), a medical proceeding involving an instance of a specific condition or set of symptoms and a medical examination of the condition or symptoms, or a unit of work for a specific profession.

Case Data Visualization Application

According to an embodiment of the invention, a software application (identified as a “case data visualization application”) can be provided that, when executed on a device, allows a user to visualize a chronology of events associated with a case (such as a prosecution of a criminal defendant, a medical examination of a specific condition, or set of symptoms, or a unit of work for a specific procession), view a summary of one or more supporting details (such as documents or files) of an event, and drill-down to view specific case data of each supporting detail of an event, in one cohesive software application. Thus, the case data visualization application can provide a way of collecting, organizing, visualizing, and sharing data associated with a case. The case data visualization application can provide a framework that allows for multiple view types for visualizing a case, including a timeline view of the case, a spatial map view of the case, a tabular grid view of the case, and a relational link chart view of the case. Furthermore, the case data visualization application can allow a plurality of users to collaborate on the case, and can synchronize a plurality of supporting details created by a plurality of users that are associated with an event. The case data visualization application can be implemented on any device, such as a client or server.

FIG. 1 illustrates a block diagram of an apparatus 100 in accordance with an embodiment of the invention. As is described below in greater detail, in certain embodiments, apparatus 100 can be a client. As is also described below in greater detail, in other embodiments, apparatus 100 can be a server.

According to the embodiment, apparatus 100 includes a bus 105 or other communications mechanism for communicating information between components of apparatus 100. Apparatus 100 also includes a processor 110, operatively coupled to bus 105, for processing information and executing instructions or operations. Processor 110 may be any type of general or specific purpose processor. Apparatus 100 further includes a memory 115 for storing information and instructions to be executed by processor 110. Memory 115 can include any combination of random access memory (RAM), read only memory (ROM), static storage such as a magnetic or optical disk, or any other type of machine or computer-readable medium. Apparatus 100 further includes a communication device 120, such as a network interface card or other communications interface, to provide access to a network. As a result, a user may interface with apparatus 100 directly, or remotely through a network or any other method.

A computer-readable medium may be any available medium that can be accessed by processor 110. A computer-readable medium may include both a volatile and nonvolatile medium, a removable and non-removable medium, and a storage medium. A storage medium may include RAM, flash memory, ROM, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, hard disk, a removable disk, a compact disk read-only memory (CD-ROM), or any other form of storage medium known in the art.

Processor 110 can also be operatively coupled via bus 105 to a display 125, such as a Liquid Crystal Display (LCD). Display 125 can display information to the user. A keyboard 130 and a cursor control device 135, such as a computer mouse, can also be operatively coupled to bus 105 to enable the user to interface with apparatus 100.

Processor 110 can also be operatively coupled via bus 105 to a database 140. Database 140 can store data in an integrated collection of logically-related records or files. Database 140 can be an operational database, an analytical database, a data warehouse, a distributed database, an end-user database, an external database, a navigational database, an in-memory database, a document-oriented database, a real-time database, a relational database, an object-oriented database, a NoSQL database, or any other database known in the art. In certain embodiments, where apparatus 100 is a client, database 140 can be an embedded relational database, such as a SQLite database. In certain embodiments, where apparatus 100 is a server, database 140 can be a NoSQL database, such as a MongoDB database.

According to one embodiment, memory 115 can store software modules that may provide functionality when executed by processor 110. The modules can include case data visualization module 150. Case data visualization module 150 can provide a case data visualization application that can collect, organize, synchronize, and display case data, as is described below in greater detail. In certain embodiments, case data visualization module 150 can comprise a plurality of modules that each provide specific individual functionality for collecting, organizing, synchronizing, and displaying case data.

According to the embodiment, memory 115 can also store operating system 160. Operating system 160 can provide an operating system functionality for apparatus 100. In one embodiment, apparatus 100 can also be part of a larger system. Thus, memory 115 can also store one or more additional applications 170 to include additional functionality for an overall system that apparatus 100 can be a part of.

FIG. 2 illustrates a block diagram of a system 200, according to an embodiment of the invention. System 200 includes server 210. Server 210 can be any computer system or software application that provides a service. Server 210 can be any type of server configured to synchronize case data, as is described below in greater detail, where examples of server 210 include any kind of application server, or any kind of web server. In certain embodiments, server 210 can be identical to apparatus 100 of FIG. 1. In alternate embodiments, server 210 can represent a distributed software-as-a-service (SaaS) solution that comprises a plurality of servers. In any of these embodiments, server 210 can utilize a case data visualization module (such as case data visualization module 150 of FIG. 1) to provide a case data visualization application that can synchronize case data, as is described below in greater detail.

System 200 also includes one or more clients, such as personal computer client 211, laptop client 212, tablet device client 213, personal digital assistant (PDA) client 214, and mobile device client 215, where a client can be can be any computer system or software application that accesses a service on a remote computer system, such as a personal computer, a laptop computer, a tablet computer, a PDA, and a mobile device. A client, such as personal computer client 211, laptop client 212, tablet device client 213, personal digital assistant (PDA) client 214, and mobile device client 215, can be configured to collect, organize, and display case data, as is described below in greater detail. In certain embodiments, a client, such as personal computer client 211, laptop client 212, tablet device client 213, PDA client 214, or mobile device client 215, can be identical to apparatus 100 of FIG. 1. In these embodiments, the client can utilize a case data visualization module (such as case data visualization module 150 of FIG. 1) to provide a case data visualization application that can collect, organize, and display case data, as is described below in greater detail. Furthermore, the client can utilize a case data visualization module (such as case data visualization module 150 of FIG. 1) to collect case data, encrypt the collected case data, and transmit the encrypted case data to another client, as is also described below in great detail.

One of ordinary skill in the art would readily understand that system 200 is an example configuration of a system according to an embodiment, and that, in other alternate embodiments, a system may have a different configuration. For example, a system may have any number of servers, and any number of clients, where each client may by any type of client, such as the types of client illustrated in FIG. 2. Furthermore, a system may also have additional types of devices not illustrated in FIG. 2.

In certain embodiments, a case data visualization module, such as (such as case data visualization module 150 of FIG. 1) can provide a case data visualization application that can be one of four formats: a client format, a reader format, a mobile format, and a server format. The four formats of a case data visualization application are further described in greater detail.

In certain embodiments, where the case data visualization application is a client format, the case data visualization application can be implemented on any type of client device, such as the client devices illustrated in FIG. 2 (i.e., personal computer client 211, laptop client 212, tablet device client 213, PDA client 214, and mobile device client 215). The case data visualization application can also be implemented on any computer platform, such as Microsoft Windows®, Apple Mac OS®, and Linux.

FIG. 3 illustrates a block diagram of a case data visualization application in a client format in accordance with an embodiment of the invention. According to the embodiment, a device 300 can include a case data visualization application 310 that is a client format, where the case data visualization application 310 is implemented on device 300.

According to the embodiment, case data visualization application 310 can encapsulate case data (such as images, scanned documents, visualizations, and other files) associated with a case. Such a case can include a criminal prosecution of a defendant, for example. As another example, such a case can include the provision of health care to a patient, the provision of legal services to a client, or any unit of work for a given profession. Cases are not limited to these examples, and can include any type of case that generates case data. Case data visualization application 310 can encapsulate the case data into a case file. A case file is a file that is associated with a case, that has a specifically defined format, and that includes case data. All case files that can be associated with a case can each have the same specifically defined format, and thus, all case files can have a universal format. In one embodiment, the case files can have a SQLite format.

In certain embodiments, the case data can be stored in one or more files, and case data visualization application 310 can receive the one or more files and encapsulate the one or more files into the case file. For example, case data visualization application 310 can display user interface 320 that allows a user to select one or more files that are stored on device 300 (where device 300 also stores case data visualization application 310). In certain embodiments, user interface 320 also allows the user to select a folder that is stored on device 300, where the folder includes one or more files.

In certain embodiments, case data visualization application 310 can automatically forensically hash each file of the one or more files before encapsulating each file into the case file. As one of ordinary skill in the art would readily appreciate, forensically hashing refers to hashing data to produce a digital signature and embedding the digital signature within the data to verify that the data has not been altered. The forensic hashes can be generated using a hashing algorithm (such as a MD5 message-digest algorithm (“MD5”)). According to these embodiments, each file is forensically hashed upon collection. In certain embodiments, case data visualization application 310 can determine that a received file is identical to a file that has already been received and encapsulated into a case file. In these embodiments, rather than encapsulating the received file into the case file a second time, case data visualization application 310 can create metadata that references the file that has already been received, and can encapsulate the metadata, rather than the received file, within the case file. In certain embodiments, case data visualization application 310 can encrypt the case file. Also, in certain embodiments, case data visualization application 310 can store the case file within a database that is stored on device 300 (where device 300 also stores case data visualization application 310). In certain embodiments, the database is a SQLite database.

After receiving the one or more files, and encapsulating them into the case file, case data visualization application 310 can then generate a timeline visualization of the case data, and display the timeline visualization of the case data within user interface 320. An example of such a user interface is described in further detail in relation to FIG. 5.

In certain embodiments, a user can create a new event within user interface 320 of case data visualization application 310 by “clicking” on the timeline visualization. According to the embodiments, an “event” is a representation of case data associated with a point in time, or a duration is time, where the event can be visually represented within user interface 320. An event can take on one of many visual representations, including a block or a milestone. The user can also associate summary information to the event, such as a date and/or time, or a title, by entering the summary information within user interface 320. The user can also associate one or more files to the event, where the one or more files each include case data, by selecting the one or more files (or a folder that contains the one or more files) that can be displayed within user interface 320. In response to the selection, case data visualization application 310 can then receive the one or more files and encapsulate the one or more files within a case file.

In certain embodiments, an event can be associated with one or more tags. A tag is a short word or phrase that can be assigned to an event that identifies a category that the event is associated with. According to these embodiments, tagging can be the primary way to organize the one or more events associated with a case. In accordance with the embodiment, an event can have one or more tags associated with it. Because an event can have more than one tag associated with it, an event, and the case data contained within the event, can be organized into multiple categories. One type of tag is a predefined tag. This type of tag can be created by a system administrator of case data visualization application 310, and the text of the predefined tag can be defined when the predefined tag is created. A user can use a predefined tag in order to provide a standard way of categorizing events. Another type of tag is a regular tag. This type of tag can be created by a user, and the user can define the text of the regular tag when the user creates the tag. A user can use a regular tag in order to customize how the user indexes one or more events.

In certain embodiments, an event can be full-text indexed. As one of ordinary skill in the art would readily appreciate, full-text indexing refers to creating one or more indexes for case data that contains text, where each index of the one or more indexes corresponds to a word contained within the text, so that the case data is searchable. Thus, by full-text indexing an event, one or more indexes can be created for the case data included within the event, where the case data contains text.

In certain embodiments, case data visualization application 310 can filter a display of the one or more events associated with a case. Case data visualization application 310 can filter the display of the one or more events based on one or more tags, where the user can select one or more tags, and case data visualization application 310 can display only the events that are associated with at least one tag. Case data visualization application 310 can filter the one or more events based on one or more full-text indexes, where a user can enter one or more words, and case data visualization application 310 can display only the events that contain at least one word.

According to certain embodiments, case data visualization application 310 can facilitate coordination of case data with another case data visualization application. In general, there may be specific barriers to two or more organizations collaborating. For example, a law enforcement organization may have data related to a grand jury proceeding that cannot be shared with outside organizations. However, a private sector organization may work with the law enforcement organization, and may have data that is related to the grand jury proceeding, and that is mutually beneficial to both organizations. Although the private sector organization may be willing to share its data with the law enforcement organization, there may be legal and bureaucratic reasons why the organization's data cannot be commingled into a single database. Case data visualization application 310 can facilitate such coordination without commingling the two organizations' data. According to the embodiments, a case data visualization application for a first organization (such as case data visualization application 310) can distill criteria (such as a set of search terms and/or tags) into a criteria file. The criteria file can be loaded into a case data visualization application for a second organization. The case data visualization application for the second organization can correlate criteria distilled within the criteria file with case data stored within the case data visualization application for the second application. The correlation can produce one or more correlation results. Correlation results from the correlation can be filtered by the case data visualization for the second organization to remove any personal or confidential information. The filtered correlation results can be displayed within a user interface or stored within a file. For example, the filtered correlation results could include a list of one or more contacts, where each contact is associated with case data, but the case data is filtered, so that only contact information is returned.

In certain embodiments, where the case data visualization application is a reader format, the case data visualization application can disable the ability to edit the case data.

FIG. 4 illustrates a block diagram of a case data visualization application in a reader format in accordance with an embodiment of the invention. According to the embodiment, a device 400 can include a case data visualization application 410 that is a reader format, where the case data visualization application 410 is implemented on device 400. Case data visualization application 410 can perform the functionality described in relation to case data visualization application 310, but case visualization application 410 can disable the ability to edit case data. For example, case data visualization application 410 can disable the ability to create new events. As another example, case data visualization application 410 can disable the ability to add one or more files to case data visualization application 410 to be encapsulated into a case file. In certain embodiments, editing features normally displayed within user interface 420 (such as a button for creating a new event or adding one or more files) are “grayed out,” (i.e., are displayed with a gray field over them) and do not provide any functionality to a user (i.e., cannot be accessed by the user to perform any functionality). In other embodiments, the editing features normally displayed within user interface 420 are removed. In this manner, case data visualization application 410 can be distributed to third parties, without any risk of contamination of the case data stored within case data visualization application 410.

FIG. 5 illustrates an example user interface 500 of a case data visualization module, according to an embodiment of the invention. In one embodiment of the invention, user interface 500 is a default view presented to a user upon initiation of the case data visualization application.

According to the illustrated embodiment of FIG. 5, user interface 500 includes detail band 510. Detail band 510 displays case data associated with a case. More specifically, according to an embodiment, detail band 510 displays a view, such as a view of a timeline (i.e., timeline view), where one or more events that are associated with the case are displayed along the timeline, where each event of the one or more events includes case data. In one embodiment, detail band 510 only displays a portion of the timeline, and thus, only displays a portion of the one or more events. According to the embodiment, the portion of the timeline that is displayed within detail band 510 is determined by focus window 521 of time band navigator 520, as is described below in greater detail.

Furthermore, according to the embodiment, the portion of the timeline that is displayed within detail band 510 can be adjusted by a user, through the user “clicking” within detail band 510 and “scrolling” in a horizontal direction (with the computer mouse, for example) to a new position within the timeline. As another example, a user can adjust the portion of the timeline that is displayed within detail band 510 by “touching” within detail band 510 where detail band is displayed on a touchscreen and “swiping” in a horizontal direction (with a finger for example) to a new position within the timeline. Through the “scrolling” in the horizontal direction to a new position within the timeline, within detail band 510, detail band 510 adjusts the timeline view so that a portion of the timeline that corresponds to the new position is displayed within detail band 510. The “scrolling” in the horizontal direction, within detail band 510, also causes time band navigator 520 to adjust the position of focus window 521 displayed within time band navigator 520 to correspond to the new position, as is also described below in greater detail. In one embodiment, when a user “clicks” within detail band 510 and “scrolls” in a horizontal direction, detail band 510 displays a date and/or time that corresponds to a point within detail band 510. In one embodiment, this point is the center point of detail band 510.

In the illustrated embodiment of FIG. 5, detail band 510 displays ten events 511 associated with a case (entitled “Event #1,” “Event #2,” “Event #3,” “Event #4,” “Event #5,” “Event #6,” “Event #7,” “Event #8,” “Event #9,” and “Event #10,” respectively). One of ordinary skill in the art would readily appreciate that this is merely an example embodiment, and that in alternate embodiments, detail band 510 can display any number of events, where each event can be of any type. In the illustrated embodiment, each event is also associated with a specific date and/or time. However, in alternate embodiments, an event can be associated with a span of time, rather than a specific date and/or time. According to the illustrated embodiment, detail band 510 displays events 511 using a “stacking algorithm.” A stacking algorithm is a display algorithm that generally displays events within the timeline that is displayed within detail band 510 in a horizontal direction, from left to right, based on a date and/or time corresponding to the event. According to the stacking algorithm, a subsequent event is displayed to the right of a preceding event in a horizontal direction, when the duration amount between the preceding event and the subsequent event is greater than or equal to a predetermined amount. This predetermined amount can be determined based on the screen size of detail band 510, and can dynamically be adjusted when the screen size of detail band 510 is adjusted. However, when the duration amount between the subsequent event and the preceding event is less than a predetermined amount, the stacking algorithm not only displays the subsequent event to the right of the preceding event in a horizontal direction, but also displays the subsequent event above the preceding event in a vertical direction. In other words, the stacking algorithm “stacks” the subsequent event on top of the preceding event vertically as well as horizontally.

An example of a stacking algorithm is illustrated in FIG. 5. According to the illustrated embodiment, detail band 510 displays events 511 using a stacking algorithm. According to the stacking algorithm, events 511 entitled “Event #1,” “Event #2,” “Event #3,” and “Event 4,” are “stacked” vertically, as well as horizontally, as the duration amount between the events are less than the predetermined amount. In contrast, event 511 entitled “Event #5” is not “stacked” vertically upon event 511 entitled “Event #4” because the duration amount between the events is greater than or equal to the predetermined amount. Instead, event 511 entitled “Event #5” is merely displayed to the right of event 511 entitled “Event #4,” in a horizontal direction. Similarly, events 511 entitled “Event #6,” and “Event #7” are stacked vertically, as well as horizontally, and events 511 entitled “Event #8,” “Event #9,” and “Event #10,” are stacked vertically, as well as horizontally, whereas event 511 entitled “Event #8” is merely displayed to the right of events 511 entitled “Event #6” and “Event #7,” in an horizontal direction. As illustrated in FIG. 5, the stacking algorithm displays a subsequent event at the bottom of the timeline when the duration amount between the preceding event and the subsequent event is greater than or equal to a predetermined amount, no matter where the preceding event was displayed with respect to the timeline.

According to an embodiment, detail band 510 also displays one or more time increments that the timeline can be divided into. In the illustrated embodiment of FIG. 5, detail band 510 displays time increments 512, where each time increment 512 represents a day. One of ordinary skill in the art would readily appreciate that time increments 512 are only examples of time increments, and that a time increment can be any duration of time, such as a second, a minute, an hour, a day, a week, a month, and a year. Furthermore, in one embodiment, time increments 512 are determined by detail band 510 based on a size of a display within detail band 510, and detail band 510 can dynamically adjust time increments 512 (for example, adjust time increments 512 from days to hours), based on a size adjustment of the display within detail band 510. A size adjustment of the display within detail band 510 is described below in greater detail.

In one embodiment, by “hovering” (for example, with a computer mouse) over an event displayed within detail band 510, such as event 511, detail band 510 displays a “tooltip” that includes case data associated with the event. In one embodiment, the case data includes a date and/or time of the event. In another embodiment, the case data also includes a link to a case file associated with the event. In the illustrated embodiment of FIG. 5, by hovering over event 511 entitled “Event #10,” detail band 510 displays tooltip 513 associated with event 511. According to the illustrated embodiment, tooltip 513 includes a date and time of event 511 (i.e., “Thurs, June 26, 20:20:20 GMT-0700 2011).

In an embodiment, a user can “click” on an event, such as event 511 illustrated in FIG. 5, to highlight the event. According to the embodiment, a user can navigate to a subsequent event. In one example, a user can navigate to the subsequent event by “clicking” on a button (not shown in FIG. 5) displayed within user interface 500. According to an embodiment, the user can also navigate to a preceding event. In one example, a user can navigate to the preceding event by “clicking” on another button (also not shown in FIG. 5). In one embodiment, the subsequent event (or preceding event) is the first event that occurs after (or before) the highlighted event. In another embodiment, the subsequent event (or preceding event) is a “context-specific” event, and thus, is the first event that occurs after (or before) the highlighted event that also has an event type that is identical to the highlighted event. In another embodiment, when a user highlights an event by “clicking” on the event, detail band 510 can identify that the highlighted event as part of a sequence of events, and can also highlight the one or more events that are part of the sequence. For example, if a user highlights event 511, detail band 510 can identify that event 511 is part of a plurality of events, and can also highlight the other events.

According to the illustrated embodiment of FIG. 5, user interface 500 also includes time band navigator 520. Time band navigator 520 displays a complete range of a timeline. Time band navigator 520 includes focus window 521. Focus window 521 is a highlighted portion of time band navigator 520, and corresponds to a portion of the timeline that is displayed within detail band 510. Focus window 521 includes handles 522. Because focus window 521 corresponds to the portion of the timeline displayed within detail band 510, the left handle of handles 522 corresponds to the left boundary of detail band 510, and the right handle of handles 522 corresponds to the right boundary of detail band 510. A user can “click” on a handle of handles 522 and “drag” the handle in a horizontal direction. By “dragging” one of handles 522 in a horizontal direction, the user can increase or decrease the size of focus window 521. When the size of focus window 521 is increased or decreased, detail band 510 dynamically updates its display to correspond to the size of focus window 521. In one embodiment, as previously described, one or more time increments displayed within detail band 510 can be dynamically updated when the display of detail band 510 is dynamically updated (which can be based on an adjustment of the size of focus window 521).

Furthermore, according to the embodiment, a position of focus window 521 within a timeline can be adjusted by a user, through the user “clicking” within focus window 521 and “scrolling” in a horizontal direction to a new position within the timeline. Through the “scrolling” in the horizontal direction to a new position, within focus window 521, time band navigator 520 adjusts the position of focus window 521 within the timeline accordingly. The “scrolling” in the horizontal direction, within focus window 521, also causes detail band 510 to adjust the timeline view so that a portion of the timeline that corresponds to the new position is displayed within detail band 510. In one embodiment, when a user “clicks” within focus window 521 and “scrolls” in a horizontal direction, detail band 510 displays a date and/or time that corresponds to a point within detail band 510. In one embodiment, this point is the center point of detail band 510. In another embodiment, when a user “clicks” within time band navigator 520, detail band 510 adjusts the timeline view so that a portion of the timeline that corresponds to the position that the user “clicked” within time band navigator 520 is displayed within detail band 510.

In one embodiment, time band navigator 520 also displays one or more histograms, where each histogram indicates a relative frequency of events within the timeline. In the illustrated embodiment of FIG. 5, time band navigator 520 displays histograms 523, where histograms 523 each represent a relative frequency of events within the timeline. According to an embodiment, histograms 523 can be used to determine where to adjust a position of focus window 522.

According to the illustrated embodiment of FIG. 5, user interface 500 also includes event detail 530. According to an embodiment of the invention, when a user “clicks” on an event displayed within detail band 510, event detail 530 displays associated details of the event. In certain embodiments, such details includes a title of the event (displayed within event title 531), one or more tags associated with the event (displayed within event tags 532), a summary associated with the event (displayed within event summary 533), one or more dates associated with the event (displayed within event date(s) 534) and one or more files associated with the event (displayed within event files 535). In certain embodiments, a user can associate one or more tags with the event from within event tags 532, and can remove one or more associated tags from within event tags 532. In certain embodiments, the one or more dates include a single date associated with the event, where the single date is displayed within event date(s) 534. In other embodiments, the one or more dates include a start date associated with the event, and an end date associated with the event, where the start date and the end date are each displayed within event date(s) 534. In certain embodiments, a user can “click” on one or more files displayed within event files 535, and user interface 500 will display the corresponding file (not shown in FIG. 5).

According to the illustrated embodiment of FIG. 5, user interface 500 also includes filter/navigation bar 540. Filter/navigation bar 540 allows a user to navigate between, and filter, the one or more events displayed within user interface 500. For example, according to the embodiment, filter/navigation bar 540 includes navigation controls 541, search filter 542, tag filter 543, and file library 544. File library 544 is described in greater detail in relation to FIG. 6.

Navigation controls 541 include controls for navigating between different events. Such controls can include a sidebar that displays a sidebar within user interface 500 (not shown), where the sidebar includes additional aspects of a case, such as a detailed overview of the case, author of a case, and case sharing information. Such controls can also include a previous button and a next button that allow a user to navigate to a previous event and a next event within detail band 510, respectively. Such controls can also include a new event button that allows a user to create a new event, and delete a current event, respectively.

Search filter 542 allows a user to enter text, such as one or more words. According to an embodiment, a search filter can be applied so that the transaction data visualization application only displays events that are associated with the text (e.g., associated with at least one word of the one or more words), or highlights associated events so they are more prominently displayed on the timeline.

Tag filter 543 allows a user to select one or more tags. According to an embodiment, a tag filter can be applied so that the transaction data visualization application only displays events that are associated with at least one of the selected tags.

In certain embodiments, where the case data visualization application is a mobile format, the case data visualization application can be configured to execute on a mobile device, such as a mobile phone or a smartphone (e.g., Apple iPhone® or Google Android® device) or a tablet device (e.g., Apple iPad®).

FIG. 6 illustrates an example file library user interface 600 of a case data visualization module, according to an embodiment of the invention. In certain embodiments, file library user interface 600 can be displayed when a user “clicks” on file library 544 of user interface 500 illustrated in FIG. 5. According to the embodiment, file library user interface 600 displays a view of one or more files that have been received by the case data visualization application. According to the illustrated embodiment of FIG. 6, file library user interface 600 includes file filter 610. File filter 610 can filter the files that are displayed within file library user interface 600. In certain embodiments, file filter 610 can filter the files based on one of three filter settings, “All,” “Attached,” and “Unattached.” When file filter 610 filters the files based on the filter setting “All,” all the files that have been received by the case data visualization application are displayed within file library user interface 600. When file filter 610 filters the files based on the filter setting “Attached,” only files that have been associated with an event are displayed within file library user interface 600. When file filter 610 filters the files based on the filter setting “Unattached,” only files that have not been associated with an event are displayed within file library user interface 600. In certain embodiments, each file can be associated with more than one event.

According to the embodiment, file library user interface 600 includes file view 620. File view 620 can control the view that is used to display the files within file library user interface 600. In certain embodiments, file view 620 can select one of two views: “Normal” and “Forensic.” The “Normal” view displays a list of the files received by the case data visualization application. The “Forensic” view displays a list of the files, where the files are categorized by their forensic hash. In other words, two or more files with identical forensic hashes are grouped within a single category.

According to the illustrated embodiment of FIG. 6, file library user interface 600 also includes the following fields: file name 630, events 640, size 650, and create date 660. For each file, file name 630 displays the file name, events 640, displays the number of events that the file is associated with, size 650 displays the size of the file, and create date 660 displays the date the file was created. In certain embodiments, where a user “clicks” on a number of events that the file is associated with, displayed within events 640, file library user interface 600 displays a list of events that the file is associated with (not shown in FIG. 6). In some of these embodiments, by “clicking” on one of the events within the list of events, detail band 510 of user interface 500 of FIG. 5 navigates to the event and displays the event (not shown in FIG. 6). As previously described, in certain embodiments, a case data visualization application can automatically forensically hash each received file. Thus, the case data visualization application can determine that a received file is identical to a file that has already been received. In these embodiments, rather storing the received file a second time, the case data visualization application can create metadata that references the file that has already been received, and can store the metadata, rather than the received file.

In the illustrated embodiment, file library user interface 600 displays three files, files 670, 680, and 690. File library user interface 600 further displays the name of the file, the number of events that the file is associated with, the size of the file and the date the file was created, for each file of files 670, 680, and 690. However, one of ordinary skill in the art would readily appreciate that this is merely an example embodiment, and that in alternate embodiments, file library user interface 600 can display any number of files.

FIG. 7 illustrates a block diagram of a case data visualization application in a mobile format in accordance with an embodiment of the invention. According to the embodiment, a device 700 can include a case data visualization application 710 that is a mobile format, where the case data visualization application 710 is implemented on device 700. In some embodiments, device 700 is a mobile device, and in other embodiments, device 700 is a tablet device. Case data visualization application 710 can further generate case data. Examples of case data can include image data, audio data, video data, visualization data, geospatial data, or document data. For example, case data visualization application 710 can interface with a camera stored within device 700 and collect one or more images or videos. Each image or video can be stored in an image file or video file respectively. As another example, case data visualization application 710 can interface with a global positioning system (“GPS”) receiver stored within device 700 and collect geospatial data, where the geospatial data can be recorded as metadata for collected files. As yet another example, case data visualization application 710 can generate a digital document, where the digital document can be stored in a document file. Case data visualization application 710 can then transmit the generated case data to another device, such as a client or server.

According to certain embodiments, case data visualization application 710 can encrypt the case data before it is transmitted to another device. Also, in certain embodiments, case data visualization application 710 can automatically forensically hash the case data upon creation time.

According to certain embodiments, case data visualization application 710 can transmit the case data in one of several ways. In some embodiments, case data visualization application 710 can transmit the case data wirelessly over an encrypted channel. In other embodiments, case data visualization application 710 can establish a point-to-point connection with the other device and transmit the case data over the point-to-point connection. In certain embodiments, the point-to-point connection can be a peer-to-peer wireless connection. In these embodiments, the peer-to-peer connection can be established using a zero configuration network discovery protocol. As one of ordinary skill in the art would readily appreciate, a zero configuration network discovery protocol is a protocol that allows one device to locate and connect to another device automatically, without manually configuring either device's network settings. Also, in these embodiments, an authentication mechanism can be required to establish the point-to-point connection. For example, case data visualization application 710 can transmit an authentication key (such as a personal identification number) to the other device. A user can be required to enter the authentication key within a user interface of the other device, before case data visualization application 710 will initiate the transfer of the case data over the peer-to-peer connection.

In other embodiments, case data visualization application 710 can store the case data within a file, where the file can be physically transferred to the other device, and synchronized with any case data stored within the other device. In yet other embodiments, case data visualization application 710 can store the case data on a network, where the other device can fetch the case data from the network.

In certain embodiments, where the case data visualization application is a server format, the case data visualization application can facilitate collaboration on cases.

FIG. 8 illustrates a block diagram of a case data visualization application in a server format in accordance with an embodiment of the invention. According to the embodiment, a server 800 can include a case data visualization application 810 that is a server format, where the case data visualization application 810 is implemented on device 800. According to the embodiment, case data visualization application 810 can facilitate collaboration on cases. More specifically, case data visualization application 810 can “publish” case data associated with a case, so that other users (using a device that includes a client format of the case data visualization application, such as devices 820 and 830) can access the case data. Other users can access the case data by downloading the case data using a device that includes the client format of the case data visualization application (such as devices 820 and 830). Through this collaboration, changes to cases can propagate to other users. In other embodiments, case data visualization application 810 can act as gateway, where the case data visualization application can connect to other products, services, or capabilities.

Also in certain embodiments, case data visualization application 810 can synchronize a received set of case data with a stored set of case data that is stored within case data visualization application 810. Case data visualization application 810 can synchronize the two sets of data so that other users can view changes to the case data included in the received set of case data. Thus, during synchronization, case data visualization application 810 can reconcile differences between the received set of case data and the stored set of case data. In some embodiments, the received set of case data has a different format than the stored set of case data. In these embodiments, during synchronization, case data visualization application 810 can first transform the received set of case data into the format of the stored set of case data before reconciling the differences. For example, the received set of case data may originally have a SQLite format, the stored set of case data may have a MongoDB format, and case data visualization application 810 can transform the received set of case data so that the received set of case data can also have a MongoDB format.

Thus, according to certain embodiments, a client format of the case data visualization application can disconnect from case data visualization application 810, go offline, reconnect with case data visualization application 810, and can synchronize its case data with the case data of case data visualization application 810, where case data visualization application 810 facilitates the synchronization. The advantage of this type of synchronization mechanism is that no connectivity of the client format of the case data visualization application is assumed. Instead, a user can work on a case file using a first client format of the case data visualization application, the case file can be moved from one physical location to another physical location, loaded onto a second client format of the case data visualization application, and can be synchronized with case data visualization application 810.

In certain embodiments, synchronization is initiated manually by a user. In other embodiments, synchronization is automatically initiated. In certain embodiments, case data visualization application 810 can store case data within a NoSQL database, such as a MongoDB database.

According to certain embodiments, case data visualization application 810 can facilitate coordination of case data with another case data visualization application. According to the embodiments, a case data visualization application for a first organization (such as case data visualization application 810) can distill criteria (such as a set of search terms and/or tags) into a criteria file. The criteria file can be loaded into a case data visualization application for a second organization (such as a case data visualization application implemented on device 820 or device 830). The case data visualization application for the second organization can correlate criteria distilled within the criteria file with case data stored within the case data visualization application for the second application. The correlation can produce one or more correlation results. Correlation results from the correlation can be filtered by the case data visualization for the second organization to remove any personal or confidential information. The filtered correlation results can be displayed within a user interface or stored within a file. For example, the filtered correlation results could include a list of one or more contacts, where each contact is associated with case data, but the case data is filtered, so that only contact information is returned.

FIG. 9 illustrates a method according to an embodiment of the invention. The steps of each method and algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a computer program executed by a processor, or in a combination of the two. A computer program may be embodied on a computer-readable medium, such as a storage medium. For example, a computer program may reside in RAM, flash memory, ROM, EPROM, EEPROM, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium may be coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an application specific integrated circuit (ASIC). In the alternative, the processor and the storage medium may reside as discrete components.

The flow begins and then proceeds to step 910. At step 910, a timeline is displayed that includes one or more events associated with a case. The one or more events can be displayed within the timeline in a chronological order. In certain embodiments, each event of the one or more events is associated with a date and/or time. In certain embodiments, at least one event is associated with a timespan. Also, in certain embodiments, the one or more events can be displayed along the timeline using a stacking algorithm. A stacking algorithm displays two events in a horizontal direction when a duration amount between the two events is greater than or equal to a predetermined amount. The stacking algorithm also displays two events in a horizontal direction and a vertical direction when the duration amount between the two events is less than the predetermined amount. In certain embodiments, the case can be a prosecution of a criminal defendant. Also, in certain embodiments, the case data can include at least one of image data, audio data, video data, visualization data, geospatial data or document data. The flow then proceeds to step 890.

At step 920, a new event is created that is associated with the case. In certain embodiments, summary information can also be associated with the event. Summary information can include at least one of a date and/or time, or a title. The flow then proceeds to step 930.

At step 930, one or more files are received, where at least one file includes new case data. New case data is case data that is not part of the case data included with the one or more events that are displayed within the timeline. In certain embodiments, the new case data can include at least one of image data, audio data, video data, visualization data, geospatial data or document data. Also in certain embodiments, the one or more files are selected from a user interface that can be displayed, where the user interface allows one or more files that are stored on a device to be selected. In these embodiments, a folder can also be selected from the user interface, where the folder includes the one or more files. The flow then proceeds to step 940.

At step 940, the one or more files are encapsulated within a case file. In certain embodiments, a case file is created, where the case file is a file that is associated with the case, that has a specifically defined format, and that includes case data. In these embodiments, the one or more files are stored within the case file. In certain embodiments, the specifically defined format is a SQLite file format. Also, in certain embodiments where at least one file is identical to a file that is already stored within the case filed, metadata associated with the at least file is generated and stored within the case file. The flow then proceeds to step 950.

At step 950, the new event is displayed within the timeline. The displayed new event can include a link to the case file, where the link to the case file causes the new case data to be displayed within the timeline. The flow then ends.

In certain embodiments, the method illustrated in FIG. 9 includes one or more additional optional steps. In some embodiments, the one or more files can be automatically forensically hashed. The automatic forensic hashing can include hashing each file to produce a digital signature and embedding the digital signature within the file. In other embodiments, the one or more files can be encrypted. In some embodiments, one or more tags can be associated with the new event. In other embodiments, one or more timespan events can also be associated with the case.

In certain embodiments, the case file can be stored within a SQLite database. In other embodiments, the display of the timeline can be switched to a view of one or more case files associated with the one or more events. In some embodiments, an ability to edit the case data displayed within the timeline can be disabled. In other embodiments, the case data can be generated, where the case data comprises at least one of, image data, audio data, video data, visualization data, geospatial data, or document data.

In certain embodiments, the case data can be transmitted to a device. In some of these embodiments, the case data can be transmitted over an encrypted channel. In other of these embodiments, the case data can be transmitted over a peer-to-peer wireless connection.

In certain embodiments, at least one search term or tag can be stored within a criteria file. This criteria file can then be correlated with case data stored within an application. The correlation can produce one or more correlation results. Correlation results from the correlation can be filtered by the case data visualization for the second organization to remove any personal or confidential information.

FIG. 10 illustrates another method, according to an embodiment of the invention. The flow begins and then proceeds to step 1010. At step 1010, a first set of case data associated with a case is received. The first set of case data includes a first set of events associated with the case. The flow then proceeds to step 1020. At step 1020, the first set of case data is compared with a second set of case data associated with the case, wherein the second set of case data includes a second set of events associated with the case. The flow then proceeds to step 1030. At step 1030, one or more differences between the first set of case data with the second set of case data are reconciled. The flow then ends.

In certain embodiments, the reconciliation of the one or more differences is initiated by a user. In these embodiments, the user can select how to reconcile the differences. For example, the user can select to retain the first set of case data for all differences. As another example, the user can select to retain the second set of case data for all differences. As yet another example, the user can select to retain either the first set of case data or the second set of case data on a difference-by-difference basis for each difference. In other embodiments, the reconciliation is automatic, where the automatic reconciliation is based on one or more pre-defined conditions. In some embodiments, the first set of case data is stored in a SQLite database, and the second set of case data is stored in a NoSQL database. In some of these embodiments, the NoSQL database is a MongoDB database. In certain embodiments, the first set of case data is in a first format, the second set of case data is in a second format, and the first format of the first set of case data can be transformed into the second format.

In certain scenarios, there may be a large amount of data (e.g., a large number of events) for a case data visualization module to display within a user interface. In some of these scenarios, there may be such a large amount of data (e.g., such a large number of events), that it may not be possible to display all the data (e.g., all the events) within a user interface. This is due to a finite amount of space within the user interface. In certain embodiments, the case data visualization module can group the data into two groups of a data: an on-screen group of data and an off-screen group of data. In the above example, the case data visualization module can group the events into two groups of events: an on-screen group of events and an off-screen group of events. The case data visualization module can display the on-screen group of data (e.g., the on-screen group of events) within the user interface. The case data visualization module can further provide a user an indication of the off-screen group of data (e.g., the off-screen group of events) by displaying one or more icons within the user interface. The one or more icons can represent the off-screen group of data (e.g., the off-screen group of events). These embodiments are further described in greater detail with respect to FIGS. 11, 12, and 13.

FIG. 11 illustrates another example user interface 1100 of a case data visualization module, according to an embodiment of the invention. User interface 1100 is similar to user interface 500 of FIG. 5, and features of user interface 1100 that are similar to features of user interface 500 of FIG. 5 are not further described here. According to an embodiment, user interface 1100 displays a timeline, where the timeline can include one or more events associated with a case, and where each event of the one or more events includes case data. In the illustrated embodiment of FIG. 11, the one or more events includes 22 events associated with a case (entitled “Event #1,” “Event #2,” “Event #3,” “Event #4,” “Event #5,” “Event #6,” “Event #7,” “Event #8,” “Event #9,” “Event #10,” “Event #11,” “Event #12,” “Event #13,” “Event #14,” “Event #15,” “Event #16,” “Event #17,” “Event #18,” “Event #19,” “Event #20,” “Event #21,” and “Event #22,” respectively). One of ordinary skill in the art would readily appreciate that this is merely an example embodiment, and that in alternate embodiments, the one or more events can include any number of events, where each event can be of any type.

According to the embodiment, it can be determined that the 22 events will not fit within the timeline displayed within user interface 1100. For example, each event can be associated with a specific date and/or time that is similar to the other 21 events, and thus, there may not be sufficient space within user interface 1100 to display the 22 events. Thus, the 22 events can be grouped into two groups of events: an on-screen group of events, and an off-screen group of events. User interface 1100 can then display the on-screen group of events within the timeline. User interface 1100 can then further display one or more icons that represents the off-screen group of events, where each icon represents one or more events of the off-screen group of events. Each icon can be any type of visual icon that can be displayed within user interface 1100.

In the illustrated embodiment of FIG. 11, the on-screen group of events includes events 1101 (i.e., “Event #1,” “Event #2,” “Event #3,” “Event #4,” “Event #5,” “Event #11,” “Event #12,” “Event #13,” “Event #14,” “Event #15,” “Event #16,” “Event #17,” and “Event #18”). Thus, user interface 1100 displays events 1101 within the timeline. Further, in the illustrated embodiment of FIG. 11, user interface 1100 also displays icons 1102, 1103, and 1104, where icons 1102, 1103, and 1104 represent the off-screen group of events (i.e., “Event #6,” “Event #7,” “Event #8,” “Event #9,” “Event #10,” “Event #19,” “Event #20,” Event #21,” and “Event #22”). More specifically, icon 1102 represents the events entitled “Event #6,” “Event #7,” and “Event #8,” icon 1103 represents the events entitled “Event #9,” and “Event #10,” and icon 1104 represents the events entitled “Event #19,” “Event #20,” Event #21,” and “Event #22.”

According to an embodiment, for each icon that represents one or more events of an off-screen group of events, one or more visual characteristics of the icon can represent information regarding the one or more events. For example, in certain embodiments, a first visual characteristic of an icon can represent a “temporal position” of one or more events of an off-screen group of events. A “temporal position” refers to a specific date and/or time associated with the one or more events. An example of a first visual characteristic of an icon is a position of an icon within a timeline. Thus, by identifying a position of an icon, a user can determine a temporal position of the one or more events represented by the icon.

Further, in certain embodiments, a second visual characteristic of an icon can represent an amount of the one or more events of the off-screen group of events. An example of a second visual characteristic of an icon is an “opacity” of the icon. As understood by one of ordinary skill in the art, “opacity” refers to a quality or state of being opaque. Thus, by identifying an opacity of an icon, a user can determine an amount of the one or more events represented by the icon. For example, the more opaque an icon is, the greater the amount of the one or more events represented by the icon. Likewise, the less opaque an icon is, the fewer the amount of the one or more events represented by the icon.

Even further, in certain embodiments, a third visual characteristic of an icon can represent a type of the one or more events of the off-screen group of events. An example of a third visual characteristic of an icon is a color of the icon. Thus, each unique color of an icon can represent a unique type of event.

In the illustrated embodiment of FIG. 11, icon 1102 is displayed within the timeline of user interface 1000 at a first position, icon 1103 is displayed within the timeline of user interface 1000 at a second position, and icon 1104 is displayed within the timeline of user interface 1000 at a third position. The first position of icon 1102 within the timeline of user interface 1000 represents a temporal position (i.e., date and/or time) of the events represented by icon 1102 (i.e., the events entitled “Event #6,” “Event #7,” and “Event #8”). The second position of icon 1103 within the timeline of user interface 1000 represents a temporal position (i.e., date and/or time) of the events represented by icon 1103 (i.e., the events entitled “Event #9,” and “Event #10”). The third position of icon 1104 within the timeline of user interface 1000 represents a temporal position (i.e., date and/or time) of the events represented by icon 1104 (i.e., the events entitled “Event #19,” “Event #20,” Event #21,” and “Event #22”).

Further, in the illustrated embodiment of FIG. 11, icon 1102 is displayed within the timeline of user interface 1000 with a first opacity (represented in FIG. 11 by the fill pattern of icon 1102). The first opacity of icon 1102 represents an amount of the events represented by icon 1102 (i.e., the events entitled “Event #6,” “Event #7,” and “Event #8”). Icon 1103 is further displayed within the timeline of user interface 1000 with a second opacity (represented in FIG. 11 by the fill pattern of icon 1103). The second opacity of icon 1103 represents an amount of the events represented by icon 1103 (i.e., the events entitled “Event #9,” and “Event #10”). Icon 1104 is further displayed within the timeline of user interface 1000 with a third opacity (represented in FIG. 11 by the fill pattern of icon 1104). The third opacity of icon 1104 represents an amount of the events represented by icon 1104 (i.e., the events entitled “Event #19,” “Event #20,” Event #21,” and “Event #22”).

Thus, in the illustrated embodiment of FIG. 11, the third opacity of icon 1104 can be the most opaque of the three opacities (i.e., the first opacity of icon 1102, the second opacity of icon 1103, and the third opacity of icon 1104) because icon 1104 represents the largest number of events (i.e., four events). The second opacity of icon 1103 can be the least opaque of the three opacities (i.e., the first opacity of icon 1102, the second opacity of icon 1103, and the third opacity of icon 1104) because icon 1103 represents the smallest number of events (i.e., two events). The first opacity of icon 1102 can be more opaque than the second opacity of icon 1103, but less opaque than the third opacity of icon 1104, because icon 1102 represents a larger number of events than icon 1103, but a smaller number of events than icon 1104 (i.e., three events).

In an embodiment, such as the illustrated embodiment of FIG. 11, icon 1102 can be displayed with a first color, icon 1103 can be displayed with a second color, and icon 1104 can be displayed with a third color. In this embodiment, the events represented by icon 1102 (i.e., the events entitled “Event #6,” “Event #7,” and “Event #8”) can be of a first type, the events represented by icon 1103 (i.e., the events entitled “Event #9,” and “Event #10”) can be of a second type, and the events represented by icon 1104 (i.e., the events entitled “Event #19,” “Event #20,” Event #21,” and “Event #22” can be of a third type. Thus, each color of each icon of icons 1102, 1103, and 1104 can represent a type of event.

FIG. 12 illustrates another feature of example user interface 1100 of a case data visualization module, according to an embodiment of the invention. According to an embodiment, a user can select an event from one or more events that are represented by an icon, such as icon 1104. For example, as previously described, a user can “click” on an event to highlight the event. Further, according to another embodiment, an event from one or more events that are represented by an icon, such as icon 1104, can be associated with a search. For example, as previously described, a search filter can be applied so that only events that are associated with the search are displayed, or only events that are associated with the search are highlighted, so that the events are more prominently displayed on the timeline. When an event from one or more events that are represented by an icon is either selected or associated with a search, a border can be displayed within user interface 1100, where the border is around at least a portion of the icon.

In the illustrated embodiment of FIG. 12, an event of the one or more events represented by icon 1104 (e.g., an event entitled “Event #20”) is either selected or associated with a search. In this illustrated embodiment, border 1105 is displayed, where border 1105 indicates that the event is either selected or associated with a search, and where border 1105 is located around at least a portion of icon 1104. In one embodiment, border 1105 can be of a color that is different from the color of icon 1104.

FIG. 13 illustrates another method, according to an embodiment of the invention. The flow begins and then proceeds to step 1310. At step 1310, a timeline is displayed. The flow then proceeds to step 1320. At step 1320, it is determined that a plurality of events to be displayed within the timeline will not fit within the timeline. The flow then proceeds to step 1330. At step 1330, the plurality of events is grouped into a first group of events and a second group of events. The flow then proceeds to step 1340. At step 1340, the first group of events is displayed within the timeline. The flow then proceeds to step 1350. At step 1350, an icon is displayed within the timeline, where the icon represents one or more events of the second group of events. A first visual characteristic of the icon represents a temporal position of the one or more events. In one embodiment, the first visual characteristic of the icon can be a position of the icon. A second visual characteristic of the icon represents an amount of the one or more events. In one embodiment, the second visual characteristic of the icon can be an opacity of the icon. Further, in one embodiment, a third visual characteristic of the icon can represent a type of the one or more events. According to this embodiment, the third visual characteristic of the icon can be a color of the icon. The flow then proceeds to step 1360. At step 1360, a border is displayed around at least a portion of the icon. In one embodiment, the border can be displayed when at least one event of the one or more events is selected. In another embodiment, the border can be displayed when at least one event of the one or more events is associated with a search. In one embodiment, a color of the border can be different from a color of the icon. The flow then ends.

According to certain embodiments, a data visualization application can provide a streamlined, intuitive, software application, that can receive digital files and documents (such as digital photos, audio samples, scanned documents, and digital video), and organize it in a manner that is easy to visualize. The data visualization application can also allow a user to focus on a wide band of time or a narrow band of time, and can view one or more events associated with a case, as well as the underlying case data (such as digital files and documents) for each event.

One having ordinary skill in the art will readily understand that the invention as discussed above may be practiced with steps in a different order, and/or with hardware elements in configurations which are different than those which are disclosed. Therefore, although the invention has been described based upon these preferred embodiments, it would be apparent to those of skill in the art that certain modifications, variations, and alternative constructions would be apparent, while remaining within the spirit and scope of the invention. In order to determine the metes and bounds of the invention, therefore, reference should be made to the appended claims. 

We claim:
 1. A method, comprising: displaying a timeline; determining that a plurality of events to be displayed within the timeline will not fit within the timeline; grouping the plurality of events into a first group of events and a second group of events; displaying the first group of events within the timeline; and displaying an icon within the timeline, wherein the icon represents one or more events of the second group of events; wherein a first visual characteristic of the icon represents a temporal position of the one or more events; and wherein a second visual characteristic of the icon represents an amount of the one or more events.
 2. The method of claim 1, wherein the first visual characteristic of the icon is a position of the icon; and wherein the second visual characteristic of the icon is an opacity of the icon.
 3. The method of claim 1, wherein a third visual characteristic of the icon represents a type of the one or more events.
 4. The method of claim 3, wherein the third visual characteristic of the icon is a color of the icon.
 5. The method of claim 1, further comprising displaying a border around at least a portion of the icon when at least one event of the one or more events is selected.
 6. The method of claim 5, wherein a color of the border is different from a color of the icon.
 7. The method of claim 1, further comprising displaying a border around at least a portion of the icon when at least one event of the one or more events is associated with a search.
 8. The method of claim 7, wherein a color of the border is different from a color of the icon.
 9. An apparatus, comprising: a memory configured to store a case data visualization module; and a processor configured to execute the case data visualization module stored on the memory; wherein the processor is further configured, when executing the case data visualization module stored on the memory, to, display a timeline; determine that a plurality of events to be displayed within the timeline will not fit within the timeline; group the plurality of events into a first group of events and a second group of events; display the first group of events within the timeline; and display an icon within the timeline, wherein the icon represents one or more events of the second group of events; wherein a first visual characteristic of the icon represents a temporal position of the one or more events; and wherein a second visual characteristic of the icon represents an amount of the one or more events.
 10. The apparatus of claim 9, wherein the first visual characteristic of the icon is a position of the icon; and wherein the second visual characteristic of the icon is an opacity of the icon.
 11. The apparatus of claim 9, wherein a third visual characteristic of the icon represents a type of the one or more events.
 12. The apparatus of claim 11, wherein the third visual characteristic of the icon is a color of the icon.
 13. The apparatus of claim 9, further comprising displaying a border around at least a portion of the icon when at least one event of the one or more events is selected.
 14. The apparatus of claim 13, wherein a color of the border is different from a color of the icon.
 15. The apparatus of claim 9, further comprising displaying a border around at least a portion of the icon when at least one event of the one or more events is associated with a search.
 16. The apparatus of claim 15, wherein a color of the border is different from a color of the icon.
 17. A non-transitory computer-readable medium, having a computer program stored thereon that, when executed by a processor, causes the processor to implement a method, the method comprising: displaying a timeline; determining that a plurality of events to be displayed within the timeline will not fit within the timeline; grouping the plurality of events into a first group of events and a second group of events; displaying the first group of events within the timeline; and displaying an icon within the timeline, wherein the icon represents one or more events of the second group of events; wherein a first visual characteristic of the icon represents a temporal position of the one or more events; and wherein a second visual characteristic of the icon represents an amount of the one or more events.
 18. The non-transitory computer-readable medium of claim 17, wherein the first visual characteristic of the icon is a position of the icon; and wherein the second visual characteristic of the icon is an opacity of the icon.
 19. The non-transitory computer-readable medium of claim 17, wherein a third visual characteristic of the icon represents a type of the one or more events.
 20. The non-transitory computer-readable medium of claim 19, wherein the third visual characteristic of the icon is a color of the icon. 